<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>FindVulkan &mdash; CMake 4.1.1 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a2c47e09" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css?v=4d06bd55" />
    
    <script src="../_static/documentation_options.js?v=e6a937a4"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    
    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="FindWget" href="FindWget.html" />
    <link rel="prev" title="FindTIFF" href="FindTIFF.html" />
 

  </head><body>
    <input id="sidebar-check" type="checkbox" />
    <label id="sidebar-overlay" for="sidebar-check"></label>



    <div class="related relbar1" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="FindWget.html" title="FindWget"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="FindTIFF.html" title="FindTIFF"
             accesskey="P">previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindVulkan</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="findvulkan">
<span id="module:FindVulkan"></span><h1>FindVulkan<a class="headerlink" href="#findvulkan" title="Link to this heading">¶</a></h1>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 3.7.</span></p>
</div>
<p>Finds Vulkan, a low-overhead, cross-platform 3D graphics and computing API,
along with related development tools typically provided by the Vulkan SDK.  This
includes commonly used utilities such as shader compilers and SPIR-V tools
(e.g., DXC, <code class="docutils literal notranslate"><span class="pre">glslc</span></code>, <code class="docutils literal notranslate"><span class="pre">glslang</span></code>, etc.) that support Vulkan-based development
workflows.</p>
<section id="components">
<h2>Components<a class="headerlink" href="#components" title="Link to this heading">¶</a></h2>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>This module supports several optional components that can be specified with the
<span class="target" id="index-0-command:find_package"></span><a class="reference internal" href="../command/find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package()</span></code></a> command:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">find_package(</span><span class="nb">Vulkan</span><span class="w"> </span><span class="p">[</span><span class="no">COMPONENTS</span><span class="w"> </span><span class="nv">&lt;components&gt;...</span><span class="p">]</span><span class="nf">)</span>
</pre></div>
</div>
<p>Each component provides a corresponding imported target.  Supported components
include:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">glslc</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds the SPIR-V compiler.  This optional component is always implied
automatically for backward compatibility, even if not requested.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">glslangValidator</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds the <code class="docutils literal notranslate"><span class="pre">glslangValidator</span></code> tool that is used to compile GLSL and HLSL
shaders into SPIR-V.  This optional component is always implied automatically
for backward compatibility, even if not requested.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">glslang</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds the Khronos-reference front-end shader parser and SPIR-V code
generation library (<code class="docutils literal notranslate"><span class="pre">glslang</span></code>).</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">shaderc_combined</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds the Google static library used for Vulkan shader compilation.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">SPIRV-Tools</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds Khronos library for analyzing and transforming SPIR-V modules.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">MoltenVK</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Finds the Khronos MoltenVK library, which is available on macOS, and
implements a subset of Vulkan API over Apple Metal graphics framework.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">dxc</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Finds the DirectX Shader Compiler (DXC), including the library and
command-line tool.  Note that Visual Studio also provides a DXC tool, but the
version included with the Vulkan SDK is typically required for Vulkan
development, as it has Vulkan capability enabled.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">volk</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Finds the Vulkan meta-loader <code class="docutils literal notranslate"><span class="pre">volk</span></code> library, a vector-optimized library of
kernels.</p>
</dd>
</dl>
</section>
<section id="imported-targets">
<h2>Imported Targets<a class="headerlink" href="#imported-targets" title="Link to this heading">¶</a></h2>
<p>This module provides the following <a class="reference internal" href="../manual/cmake-buildsystem.7.html#imported-targets"><span class="std std-ref">Imported Targets</span></a>:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::Vulkan</span></code></dt><dd><p>Target encapsulating the main Vulkan library usage requirements, available
if Vulkan is found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::glslc</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.19.</span></p>
</div>
<p>Imported executable target encapsulating the GLSLC SPIR-V compiler usage
requirements, available if <code class="docutils literal notranslate"><span class="pre">glslc</span></code> is found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::Headers</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.21.</span></p>
</div>
<p>Target encapsulating the usage requirements needed to include Vulkan headers.
It provides only the include directories and does not link to any library.
This is useful for applications that load the Vulkan library dynamically at
runtime.  This target is available if Vulkan is found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::glslangValidator</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.21.</span></p>
</div>
<p>Imported executable target encapsulating the <code class="docutils literal notranslate"><span class="pre">glslangValidator</span></code> usage
requirements, available if this tool is found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::glslang</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Target encapsulating the <code class="docutils literal notranslate"><span class="pre">glslang</span></code> library usage requirements, available if
<code class="docutils literal notranslate"><span class="pre">glslang</span></code> is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::shaderc_combined</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Target encapsulating the <code class="docutils literal notranslate"><span class="pre">shaderc_combined</span></code> library usage requirements,
available if this library is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::SPIRV-Tools</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Target encapsulating the SPIRV-Tools library usage requirements, available if
this library is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::MoltenVK</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Target encapsulating the MoltenVK library usage requirements, available if
this library is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::volk</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Target encapsulating the <code class="docutils literal notranslate"><span class="pre">volk</span></code> library usage requirements, available if
<code class="docutils literal notranslate"><span class="pre">volk</span></code> is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::dxc_lib</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Target encapsulating the usage requirements for the DirectX shader compiler
library, available if DXC library is found in the SDK.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan::dxc_exe</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Imported executable target providing usage requirements for the DirectX shader
compiler CLI tool, available if SDK has this tool.</p>
</dd>
</dl>
</section>
<section id="result-variables">
<h2>Result Variables<a class="headerlink" href="#result-variables" title="Link to this heading">¶</a></h2>
<p>This module defines the following variables:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_FOUND</span></code></dt><dd><p>Boolean indicating whether (the requested version of) Vulkan and all required
components are found.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_VERSION</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.23.</span></p>
</div>
<p>The version of Vulkan found.  Value is retrieved from
<code class="docutils literal notranslate"><span class="pre">vulkan/vulkan_core.h</span></code>.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_INCLUDE_DIRS</span></code></dt><dd><p>Include directories needed to use the main Vulkan library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_LIBRARIES</span></code></dt><dd><p>Libraries needed to link against to use the main Vulkan library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_glslc_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the <code class="docutils literal notranslate"><span class="pre">glslc</span></code> executable.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_glslangValidator_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the <code class="docutils literal notranslate"><span class="pre">glslangValidator</span></code>
executable.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_glslang_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the <code class="docutils literal notranslate"><span class="pre">glslang</span></code> library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_shaderc_combined_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the <code class="docutils literal notranslate"><span class="pre">shaderc_combined</span></code> library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_SPIRV-Tools_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the SPIRV-Tools library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_MoltenVK_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the MoltenVK library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_volk_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the volk library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_dxc_lib_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the DirectX shader compiler
library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_dxc_exe_FOUND</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>Boolean indicating whether the SDK provides the DirectX shader compiler CLI
tool.</p>
</dd>
</dl>
</section>
<section id="cache-variables">
<h2>Cache Variables<a class="headerlink" href="#cache-variables" title="Link to this heading">¶</a></h2>
<p>The following cache variables may also be set:</p>
<dl>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_INCLUDE_DIR</span></code></dt><dd><p>The directory containing Vulkan headers.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_LIBRARY</span></code></dt><dd><p>The path to the Vulkan library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_GLSLC_EXECUTABLE</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.19.</span></p>
</div>
<p>The path to the GLSL SPIR-V compiler.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_GLSLANG_VALIDATOR_EXECUTABLE</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.21.</span></p>
</div>
<p>The path to the <code class="docutils literal notranslate"><span class="pre">glslangValidator</span></code> tool.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_glslang_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>The path to the <code class="docutils literal notranslate"><span class="pre">glslang</span></code> library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_shaderc_combined_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>The path to the <code class="docutils literal notranslate"><span class="pre">shaderc_combined</span></code> library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_SPIRV-Tools_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>The path to the SPIRV-Tools library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_MoltenVK_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.24.</span></p>
</div>
<p>The path to the MoltenVK library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_volk_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>The path to the <code class="docutils literal notranslate"><span class="pre">volk</span></code> library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_dxc_LIBRARY</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>The path to the DirectX shader compiler library.</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">Vulkan_dxc_EXECUTABLE</span></code></dt><dd><div class="versionadded">
<p><span class="versionmodified added">Added in version 3.25.</span></p>
</div>
<p>The path to the DirectX shader compiler CLI tool.</p>
</dd>
</dl>
</section>
<section id="hints">
<h2>Hints<a class="headerlink" href="#hints" title="Link to this heading">¶</a></h2>
<p>This module accepts the following variables:</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">VULKAN_SDK</span></code></dt><dd><p>This environment variable can be optionally set to specify the location of the
Vulkan SDK root directory for the given architecture.  It is typically set by
sourcing the toplevel <code class="docutils literal notranslate"><span class="pre">setup-env.sh</span></code> script of the Vulkan SDK directory into
the shell environment.</p>
</dd>
</dl>
</section>
<section id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Link to this heading">¶</a></h2>
<p>Finding the Vulkan library and linking it to a project target:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">find_package(</span><span class="nb">Vulkan</span><span class="nf">)</span>
<span class="nf">target_link_libraries(</span><span class="nb">project_target</span><span class="w"> </span><span class="no">PRIVATE</span><span class="w"> </span><span class="nb">Vulkan</span><span class="o">::</span><span class="nb">Vulkan</span><span class="nf">)</span>
</pre></div>
</div>
<p>Finding the Vulkan library along with additional components:</p>
<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nf">find_package(</span><span class="nb">Vulkan</span><span class="w"> </span><span class="no">COMPONENTS</span><span class="w"> </span><span class="nb">volk</span><span class="nf">)</span>
<span class="nf">target_link_libraries(</span><span class="nb">project_target</span><span class="w"> </span><span class="no">PRIVATE</span><span class="w"> </span><span class="nb">Vulkan</span><span class="o">::</span><span class="nb">Vulkan</span><span class="w"> </span><span class="nb">Vulkan</span><span class="o">::</span><span class="nb">volk</span><span class="nf">)</span>
</pre></div>
</div>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3>Table of Contents</h3>
    <ul>
<li><a class="reference internal" href="#">FindVulkan</a><ul>
<li><a class="reference internal" href="#components">Components</a></li>
<li><a class="reference internal" href="#imported-targets">Imported Targets</a></li>
<li><a class="reference internal" href="#result-variables">Result Variables</a></li>
<li><a class="reference internal" href="#cache-variables">Cache Variables</a></li>
<li><a class="reference internal" href="#hints">Hints</a></li>
<li><a class="reference internal" href="#examples">Examples</a></li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="FindTIFF.html"
                          title="previous chapter">FindTIFF</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="FindWget.html"
                          title="next chapter">FindWget</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/module/FindVulkan.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="FindWget.html" title="FindWget"
             >next</a> |</li>
        <li class="right" >
          <a href="FindTIFF.html" title="FindTIFF"
             >previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">FindVulkan</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
    &#169; Copyright 2000-2025 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
    </div>
<script type="text/javascript">
(function() {
  "use strict";
  const hide = () => document.getElementById("sidebar-check").checked = false;
  addEventListener("keydown", e => (e.key === "Escape") && hide());
  addEventListener("click", e => (e.target.tagName === "A") && hide());
  addEventListener("hashchange", hide)
})();
</script>
  </body>
</html>